package com.hanserwei.mydemo.stream;

import java.util.stream.Stream;

public class ReduceTest1 {
    public static void main(String[] args) {
        /*
        化简：两辆合并，只保留一个
        适合：最大值，最小值，求和，求个数。。。
        .reduce((p,x)->r)  p:上一次结果，x:当前元素,r:结果
        .reduce(init,(p,x)->r)  init:初始值，p:上上次结果，x:当前元素,r:结果
        .reduce(init,(p,x)->r,(r1,r2)->r)
         */


        // 求高手总数
        Stream<Hero> heroStream = Stream.of(
                new Hero("令狐冲", 90),
                new Hero("风清扬", 98),
                new Hero("独孤求败", 100),
                new Hero("方证", 92),
                new Hero("东方不败", 98),
                new Hero("冲虚", 90),
                new Hero("向问天", 88),
                new Hero("任我行", 92),
                new Hero("不戒", 88)
        );

        Integer sum = heroStream.map(hero -> 1).reduce(0, Integer::sum);
        System.out.println(sum);

    }

    record Hero(String name, int strength) {

    }
}
